/*-------------------------------------------------------------------------

   File :			vbisopro.h
   Project :        VeriFone Base application
   Library :
   Description :
   Notes :
   Modification History :
     #     Date      Who                     Description
   ----- -------- ---------- ---------------------------------------------
	 0   04/22/96   Miami     Created.
 **************************************************************************

   Copyright (C) 1996 by VeriFone, Inc.

   All rights reserved.  No part of this software may be reproduced,
   transmitted, transcribed, stored in a retrieval system, or translated
   into any language or computer language, in any form or by any means,
   electronic, mechanical, magnetic, optical, chemical, manual or otherwise,
   without the prior written permission of VeriFone, Inc.

---------------------------------------------------------------------------*/

#ifdef ISO8583_DEFINED

#ifndef ISO8PRO

#define ISO8PRO


/* commands to process_8583 () */
#define PACK8583       0
#define UNPACK8583     1

/* Function Prototypes */
int inSendISO8583Packet (COMM_OBJECT *, PACKET_OBJECT *, int);
int inReceiveISO8583Packet (COMM_OBJECT *, PACKET_OBJECT *, int);
int inISO8583DeleteReversal (PACKET_OBJECT *);
int inISO8583CreateReversal (PACKET_OBJECT *);
int inISO8583GetReversal (PACKET_OBJECT *);
int inISO8583BuildTransmitPacket(PACKET_OBJECT *);
void vdISO8583BuildReversalPacket (PACKET_OBJECT *);

int inDefaultISO8583ValidationInit(PACKET_OBJECT *pobPacket);
int inDefaultISO8583ValidationDeinit(PACKET_OBJECT *pobPacket);
int inDefaultISO8583ValidationSet(PACKET_OBJECT *pobPacket);
int inDefaultISO8583ValidationCheck(PACKET_OBJECT *pobPacket);

extern int (*inISO8583ValidationInit)(PACKET_OBJECT *);
extern int (*inISO8583ValidationDeinit)(PACKET_OBJECT *);
extern int (*inISO8583ValidationSet)(PACKET_OBJECT *);
extern int (*inISO8583ValidationCheck)(PACKET_OBJECT *);

void vdOverLoadISO8583ValidationInit (int (*inNewISO8583ValidationInit)());
void vdOverLoadISO8583ValidationDeinit (int (*inNewISO8583ValidationDeinit)());
void vdOverLoadISO8583ValidationSet (int (*inNewISO8583ValidationSet)());
void vdOverLoadISO8583ValidationCheck (int (*inNewISO8583ValidationCheck)());

#endif /* ISO8PRO */
#endif /* ISO8583_DEFINED */
